/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cuatrovientos.erp.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.cuatrovientos.erp.dao.UsuarioDAO;
import org.cuatrovientos.erp.domain.Usuario;


/**
 *
 * @author CUA
 */
public class UsuarioAction extends ActionSupport implements ModelDriven<Usuario> {
    
    /**
	 * 
	 */
	private static final long serialVersionUID = 3757517973176979565L;


	public UsuarioAction() {
    }
    
    private Usuario usuario = new Usuario();
    private List<Usuario> listaUsuarios = new ArrayList<Usuario>();
    private UsuarioDAO usuarioDAO = new UsuarioDAO();
    

    @Override
    public Usuario getModel() {
        return usuario;
    }
    /**
	 * To save or update user.
	 * @return String
	 */
	public String guardarOActualizar()
	{	
		usuarioDAO.guardarOActualizarUsuario(usuario);
		return SUCCESS;
	}
	
	/**
	 * To list all users.
	 * @return String
	 */
	public String listar()
	{
		listaUsuarios = usuarioDAO.listarUsuarios();
		return SUCCESS;
	}
	
	/**
	 * To delete a user.
	 * @return String
	 */
	public String eliminar()
	{
		HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
		usuarioDAO.eliminarUsuario(Integer.parseInt(request.getParameter("id")));
		return SUCCESS;
	}
	
	/**
	 * To list a single user by Id.
	 * @return String
	 */
	public String editar()
	{
		HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
		usuario = usuarioDAO.listarUsuarioPorId(Integer.parseInt(request.getParameter("id")));
		return SUCCESS;
	}
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public List<Usuario> getListaUsuarios() {
		return listaUsuarios;
	}

	public void setListaUsuarios(List<Usuario> listaUsuarios) {
		this.listaUsuarios = listaUsuarios;
	}
}
